ResultSetMetaData ব্যবহার করে ResultSet এর ডেটা টাইপ এবং কনফিগারেশন

JDBC এর সাথে Metadata - জেডিবিসি (JDBC) - Java Technologies

298

JDBC (Java Database Connectivity)-এ, ResultSet হলো একটি অবজেক্ট যা SQL ক্যোয়ারি থেকে প্রাপ্ত ডেটা ধারণ করে। যখন আপনি একটি SQL ক্যোয়ারি রান করেন, তখন সেই ক্যোয়ারির ফলাফল ResultSet এ ফিরে আসে। আপনি যদি ডেটাবেসের কলামগুলির ধরনের তথ্য জানতে চান, তখন ResultSetMetaData ক্লাস ব্যবহার করতে পারেন। এই ক্লাসটি ResultSet এর কলাম সম্পর্কিত মেটাডেটা (যেমন: কলামের নাম, ডেটা টাইপ ইত্যাদি) অ্যাক্সেস করতে সহায়তা করে।

ResultSetMetaData ব্যবহার করে আপনি ডেটাবেসের কলামগুলির সম্পর্কে বিস্তারিত তথ্য পেতে পারেন, যেমন কলামের ডেটা টাইপ, ডিফল্ট মান, কলাম নাম ইত্যাদি।


ResultSetMetaData এর ব্যবহার

1. ResultSetMetaData ক্লাসের ভূমিকা:

ResultSetMetaData ক্লাসটি ResultSet এর মেটাডেটা প্রদান করে এবং এটি সাধারণত getMetaData() মেথডের মাধ্যমে পাওয়া যায়। ResultSet অবজেক্ট থেকে আপনি কলামের নাম, ডেটা টাইপ, কলামের আকার, ইত্যাদি জানতে পারবেন।

ResultSetMetaData এর মাধ্যমে আপনি যা জানতে পারবেন:

  • Number of columns in the result set.
  • Column name and column type.
  • Column precision and scale (for numeric types).
  • Column display size.
  • Is the column nullable.

2. ResultSetMetaData এর উদাহরণ

নিচে একটি উদাহরণ দেখানো হচ্ছে যেখানে ResultSetMetaData ব্যবহার করে ResultSet এর কলাম সম্পর্কে তথ্য নেওয়া হয়েছে:

উদাহরণ: ResultSetMetaData ব্যবহার করা

import java.sql.*;

public class ResultSetMetaDataExample {
    public static void main(String[] args) {
        // ডেটাবেসের সাথে সংযোগ তৈরি করা
        String url = "jdbc:mysql://localhost:3306/mydatabase";
        String username = "root";
        String password = "password";

        Connection conn = null;
        Statement stmt = null;
        ResultSet rs = null;
        ResultSetMetaData rsMetaData = null;

        try {
            // ডেটাবেসে সংযোগ স্থাপন করা
            conn = DriverManager.getConnection(url, username, password);
            
            // স্টেটমেন্ট তৈরি করা
            stmt = conn.createStatement();

            // SQL ক্যোয়ারি রান করা
            String sql = "SELECT * FROM employees";
            rs = stmt.executeQuery(sql);
            
            // ResultSetMetaData প্রাপ্ত করা
            rsMetaData = rs.getMetaData();

            // কলামের সংখ্যা পেতে
            int columnCount = rsMetaData.getColumnCount();
            System.out.println("Number of columns: " + columnCount);

            // প্রতিটি কলাম সম্পর্কে তথ্য প্রদর্শন করা
            for (int i = 1; i <= columnCount; i++) {
                String columnName = rsMetaData.getColumnName(i);
                String columnType = rsMetaData.getColumnTypeName(i);
                int columnDisplaySize = rsMetaData.getColumnDisplaySize(i);
                boolean isNullable = rsMetaData.isNullable(i) == ResultSetMetaData.columnNullable;

                System.out.println("Column " + i + ":");
                System.out.println("Name: " + columnName);
                System.out.println("Type: " + columnType);
                System.out.println("Display Size: " + columnDisplaySize);
                System.out.println("Nullable: " + isNullable);
                System.out.println("---------------------------");
            }

        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            // রিসোর্স বন্ধ করা
            try {
                if (rs != null) rs.close();
                if (stmt != null) stmt.close();
                if (conn != null) conn.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

কোড ব্যাখ্যা:

  1. Connection এবং Statement:
    • ডেটাবেসের সাথে সংযোগ স্থাপন এবং একটি স্টেটমেন্ট তৈরি করা হয়েছে।
  2. ResultSet:
    • SQL ক্যোয়ারি রান করা হয়েছে এবং তার ফলাফল ResultSet এ পাওয়া গেছে।
  3. ResultSetMetaData:
    • rs.getMetaData() ব্যবহার করে ResultSetMetaData অবজেক্ট তৈরি করা হয়েছে, যা ResultSet এর কলাম সম্পর্কিত তথ্য ধারণ করে।
  4. Column Information:
    • getColumnCount() ব্যবহার করে কলামের সংখ্যা পাওয়া যায়।
    • getColumnName() এবং getColumnTypeName() ব্যবহার করে কলামের নাম এবং টাইপ পাওয়া যায়।
    • getColumnDisplaySize() কলামের প্রদর্শনী আকার প্রদান করে।
    • isNullable() কলামটি NULL হতে পারবে কি না তা চেক করে।

3. ResultSetMetaData এর Methods

ResultSetMetaData ক্লাসের বিভিন্ন গুরুত্বপূর্ণ মেথড নিচে দেওয়া হলো:

  1. getColumnCount():

    • এটি ডেটাবেসের রেজাল্ট সেটের মোট কলামের সংখ্যা প্রদান করে।
    int columnCount = rsMetaData.getColumnCount();
    
  2. getColumnName(int column):

    • এটি নির্দিষ্ট কলামের নাম প্রদান করে। কলামের ইনডেক্স 1 থেকে শুরু হয়।
    String columnName = rsMetaData.getColumnName(1);  // প্রথম কলামের নাম
    
  3. getColumnTypeName(int column):

    • এটি কলামের ডেটা টাইপের নাম প্রদান করে (যেমন VARCHAR, INT, DATE ইত্যাদি)।
    String columnType = rsMetaData.getColumnTypeName(1);  // প্রথম কলামের টাইপ
    
  4. getColumnDisplaySize(int column):

    • এটি কলামের প্রদর্শনী আকার (ভিউ সাইজ) প্রদান করে।
    int columnDisplaySize = rsMetaData.getColumnDisplaySize(1);  // প্রথম কলামের প্রদর্শনী আকার
    
  5. isNullable(int column):

    • এটি নির্ধারণ করে যে কলামটি NULL হতে পারে কিনা। এটি একটি পূর্ণসংখ্যা প্রদান করে:
      • columnNullable (NULL হতে পারে)
      • columnNoNulls (NULL হতে পারে না)
    boolean isNullable = rsMetaData.isNullable(1) == ResultSetMetaData.columnNullable;
    
  6. getPrecision(int column):

    • এটি কলামের সঠিকতা বা প্রিসিশন প্রদান করে, যা সাধারণত numeric টাইপের জন্য ব্যবহার হয়।
    int precision = rsMetaData.getPrecision(1);  // প্রথম কলামের প্রিসিশন
    

সারাংশ

ResultSetMetaData JDBC এ একটি অত্যন্ত কার্যকরী ক্লাস যা ডেটাবেসের কলাম সম্পর্কিত মেটাডেটা অ্যাক্সেস করতে সাহায্য করে। এর মাধ্যমে আপনি ডেটাবেসের কলামের নাম, ডেটা টাইপ, আকার, নালেবলতা, এবং অন্যান্য তথ্য জানতে পারবেন। এটি ডেটাবেস অপারেশনগুলির জন্য অত্যন্ত উপকারী যখন আপনি কলাম সম্পর্কিত তথ্য প্রোগ্রামmatically ব্যবহার করতে চান। getMetaData() মেথড ব্যবহার করে আপনি এই মেটাডেটা তথ্য পেতে পারেন এবং তা বিশ্লেষণ করতে পারেন।

Content added By
Promotion

Are you sure to start over?

Loading...